﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.seguridad;
using System.Security.Principal;
using System.Web.Security;
using System.ServiceModel;
using System.Diagnostics;
using LiclSeguridad.Views;
using LiclUtil;
using com.clinica.business.entities;


namespace wesiGestClinica
{
    public partial class FormsLogin : System.Web.UI.Page, ILiclSeguridad
    {
        private LiclSeguridadPresenter oPresenter = new LiclSeguridadPresenter();
        private bool bolValidar = false;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                oPresenter.View = this;
                string[] aUsuarioRed = WindowsIdentity.GetCurrent().Name.ToString().Split('\\');
                Session.Remove("UsuarioActual");
                Session.Clear();
                Session.Abandon();
            }
            oPresenter.View = this;
            Login1.Focus();
        }

        protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
        {
            #region Validar usuario
            try
            {
                UsuarioBE oUsuario = new UsuarioBE();
                oUsuario.CodigoEmpresa = 1;
                oUsuario.CodUsuario = Login1.UserName.Trim();
                oUsuario.Password = Login1.Password;
                oPresenter.onLogear_Acceso(oUsuario);
                if (bolValidar)
                {
                    FormsAuthentication.RedirectFromLoginPage(((UsuarioBE)Session["UsuarioActual"]).NombreCompleto, true);
                    e.Authenticated = true;
                }
                else
                    throw new Exception("Error en el Inicio de Sesión");
            }
            catch (Exception ex)
            {
                Session["ErrorMessage"] = ex.Message;
            }
            #endregion
        }

        #region ILiclSeguridad Members

        public void ValidarAcceso(List<UsuarioBE> lst)
        {
            if (lst != null)
            {
                if (lst.Count > 0)
                {
                    if (lst[0].CodUsuario.Trim() == Login1.UserName.Trim())
                    {
                        HttpContext.Current.Session["UsuarioActual"] = lst[0];
                        Login1.UserName = lst[0].NombreCompleto;
                        bolValidar = true;
                    }
                }
            }
        }

        #endregion

        #region ILiclSeguridad Members


        public void MostrarMensajeError(string Mensaje)
        {
            //ScriptManager.RegisterStartupScript(this, typeof(Page), "Envio", "Alert('Se registro la liquidación Nro.'" + Mensaje) + ");", true);
        }

        #endregion
    }
}
